package edu.utwente.sem.hrs.model;

import java.util.ArrayList;
import java.util.List;

public class Rekening
{
  private List<RekeningItem> posten;
  
  public Rekening()
  {
    posten = new ArrayList<RekeningItem>();
  }
  
  public void voegPostToe(RekeningItem x)
  {
    posten.add(x);
  }
  
  public double totaalBedrag()
  {
    double totaal = 0;
    for(RekeningItem i : posten)
    {
      totaal = totaal + i.getBedrag();
    }
    return totaal;
  }
  
  private int maxLengteBeschrijvingItem()
  {
    int max = 0;
    int curr = 0;
    for(RekeningItem i : posten)
    {
      curr = i.getBeschrijving().length();
      if(curr > max)
        max = curr;
    }
    return max;
  }
  
  public String prettyPrint()
  {
    String s = "Rekening\n";
    int max = maxLengteBeschrijvingItem();
    
    for(RekeningItem i : posten)
    {
      s += String.format(("* %1$-" + max + "s%2$10.2f\n"), i.getBeschrijving(), i.getBedrag());
    }
    s += "---\n";
    s += String.format("%1$-" + max + "s%2$12.2f", "Totaal", totaalBedrag());
    return s;
  }
  
  @Override
  public String toString()
  {
    String s = "Rekening [";
    for(RekeningItem i : posten)
    {
      s += i + ", ";
    }
    s = s.substring(0, s.length()-2);
    s += "]";
    return s;
  }
  
  /**
   * @param args
   */
  public static void main(String[] args)
  {
    Rekening k = new Rekening();
    k.voegPostToe(new RekeningItem("Tralalala", 125.15));
    k.voegPostToe(new RekeningItem("Trala", 25.15));
    k.voegPostToe(new RekeningItem("Tralalalaasdf", 4125.15132));
    System.out.println(k);
    System.out.println(k.prettyPrint());
  }
}
